/* 路由鉴权 */
// 引入路由配置文件
import router from './router'
// 引入进度条
// @ts-ignore
import NProgress from 'nprogress'
// 引入进度条样式
import "nprogress/nprogress.css"
// 引入相关的仓库
import useUserStore from './store/modules/user'
// 引入大仓库
import pinia from '@/store'

// 进度条配置，取消加载时的圆球
NProgress.configure({ showSpinner: false })


// 接收仓库数据
let userStore = useUserStore(pinia)
// 用户未登录时可以访问的页面
const whiteList = ['/home', '/hospital/register', '/hospital/detail', '/hospital/notice', '/hospital/close', '/hospital/search']

// 添加 全局前置守卫（路由进入之前）
router.beforeEach((to, _from, next) => {
	// 判断用户是否登录
	let token = userStore.userInfo.token
	if (token) {
		// 放行
		next()
	} else {
		// 未登录，但访问的路径在白名单
		if (whiteList.includes(to.path)) {
			next()
		} else {
			// 跳转至首页
			next({ path: '/home', query: { redirect: to.fullPath } })
			// 显示登录界面
			userStore.visiable = true
		}
	}
	// 进度条开启
	NProgress.start()
})
// 添加 全局后置钩子（路由进入完成）
router.afterEach((to, _from) => {
	// 进度条关闭
	NProgress.done()
	// 动态设置左上角标题
	document.title = `尚医通-${to.meta.title}`
})
